//例1  util.inherits
var util = require('util'); 
function Base() { 
    this.name = 'base'; 
    this.base = 1991; 
    this.sayHello = function() { 
    console.log('Hello ' + this.name); 
    }; 
} 
Base.prototype.showName = function() { 
    console.log(this.name);
}; 
function Sub() { 
    this.name = 'sub'; 
} 
util.inherits(Sub, Base); 
var objBase = new Base(); 
objBase.showName(); //base
objBase.sayHello(); //Hello base
console.log(objBase); //Base { name: 'base', base: 1991, sayHello: [Function] }
var objSub = new Sub(); 
objSub.showName(); //sub
//objSub.sayHello(); 
console.log(objSub); //Sub { name: 'sub' }
//Sub 仅仅继承了Base 在原型中定义的函数，而构造函数内部创造的 base 属 性和 sayHello 函数都没有被 Sub 继承。

//例2 util.inspect
var util = require('util'); 
function Person() { 
    this.name = 'byvoid'; 
    this.toString = function() { 
    return this.name; 
    }; 
} 
var obj = new Person(); 
console.log(util.inspect(obj)); //Person { name: 'byvoid', toString: [Function] }
console.log(util.inspect(obj, true)); 
//Person {
    // name: 'byvoid',
    // toString: 
    //  { [Function]
    //    [length]: 0,
    //    [name]: '',
    //    [arguments]: null,
    //    [caller]: null,
    //    [prototype]: { [constructor]: [Circular] } } }

//例3 util.isArray(object)
var util = require('util');

util.isArray([])
  // true
util.isArray(new Array)
  // true
util.isArray({})
  // false

//例4 util.isRegExp(object)
var util = require('util');

util.isRegExp(/some regexp/)
  // true
util.isRegExp(new RegExp('another regexp'))
  // true
util.isRegExp({})
  // false

//例5 util.isError(object)
var util = require('util');

util.isError(new Error())
  // true
util.isError(new TypeError())
  // true
util.isError({ name: 'Error', message: 'an error occurred' })
  // false